﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Zama.WinControls;
using Montana.Negocio;

namespace Montana
{
    public partial class frmPrincipal : Form
    {
        #region Constructores

        public frmPrincipal()
        {
            InitializeComponent();
        }
        #endregion

        #region Load
        private void Principal_Load(object sender, EventArgs e)
        {
            try
            {
                this.Menu = null;
                this.MainMenuStrip.Visible = false;
                frmLogin login = new frmLogin();
                if(login.ShowDialog() == DialogResult.OK)
                {
                    GestionFormularios.SetFormPrincipalMDI(this);
                    //CrearMenu();
                    CrearMainMenuStrip();
                    this.Focus();
                }
                else
                {
                    this.Close();
                }

            }
            catch (Exception ex)
            {MessageBox.Show(ex.Message, "Montana");}
        }
        #endregion

        #region Crear Main Menu Strip
        public void CrearMainMenuStrip()
        {
            ToolStripMenuItemZ menuComprobantes = CrearToolStripMenuItem("Comprobantes", string.Empty,
                                           (System.Drawing.Image)Properties.Resources.Comprobantes16, true);

            ToolStripMenuItemZ menuFacturas = CrearToolStripMenuItem("Facturas", "mnuAdmFacturas", (System.Drawing.Image)Properties.Resources.FacturaA16, true);
            menuComprobantes.DropDownItems.Add(menuFacturas);

            ToolStripMenuItemZ menuOtros = CrearToolStripMenuItem("Otros", "mnuOtros", (System.Drawing.Image)Properties.Resources.Otros16, true);
            menuComprobantes.DropDownItems.Add(menuOtros);

            ToolStripMenuItemZ menuRecibos = CrearToolStripMenuItem("Recibos", "mnuRecibos", (System.Drawing.Image)Properties.Resources.Recibo16, true);
            menuComprobantes.DropDownItems.Add(menuRecibos);
            this.MainMenuStrip.Items.Add(menuComprobantes);

            ToolStripMenuItem menuProductos = CrearToolStripMenuItem("Productos", string.Empty,
                               (System.Drawing.Image)Properties.Resources.Productos16, true);

            ToolStripMenuItem menuAdmProductos = CrearToolStripMenuItem("Productos", "mnuProductos", (System.Drawing.Image)Properties.Resources.Productos16, true);
            menuProductos.DropDownItems.Add(menuAdmProductos);

            ToolStripMenuItemZ menuLP = CrearToolStripMenuItem("Lista de Precios", "mnuListaPrecios", (System.Drawing.Image)Properties.Resources.Precio16, true);
            menuProductos.DropDownItems.Add(menuLP);

            ToolStripMenuItemZ menuActualizarP = CrearToolStripMenuItem("Actualizar Productos", "mnuUpProductos", (System.Drawing.Image)Properties.Resources.actualizar16, true);
            menuProductos.DropDownItems.Add(menuActualizarP);
            this.MainMenuStrip.Items.Add(menuProductos);


            ToolStripMenuItemZ menuClientes = CrearToolStripMenuItem("Clientes", string.Empty,
                   (System.Drawing.Image)Properties.Resources.clientes16, true);

            ToolStripMenuItemZ menuAdmClientes = CrearToolStripMenuItem("Clientes", "mnuClientes", (System.Drawing.Image)Properties.Resources.clientes16, true);
            menuClientes.DropDownItems.Add(menuAdmClientes);

            ToolStripMenuItemZ menuCC = CrearToolStripMenuItem("Cuentas Corrientes", "mnuCC", (System.Drawing.Image)Properties.Resources.notes16, true);
            menuClientes.DropDownItems.Add(menuCC);

            this.MainMenuStrip.Items.Add(menuClientes);


            ToolStripMenuItemZ menuHerramientas = CrearToolStripMenuItem("Herramientas", string.Empty,
                                                                    (System.Drawing.Image)Properties.Resources.herramientas16, true);

            ToolStripMenuItemZ menuLocalidades = CrearToolStripMenuItem("Localidades", "mnuLocalidades", (System.Drawing.Image)Properties.Resources.mundo16, true);
            menuHerramientas.DropDownItems.Add(menuLocalidades);

            this.MainMenuStrip.Items.Add(menuHerramientas);


            ToolStripMenuItemZ menuInicial = CrearToolStripMenuItem("Salir", "mnuSalir",
                                                                   (System.Drawing.Image)Properties.Resources.Exit16,
                                                                   false);
            this.MainMenuStrip.Items.Add(menuInicial);


            ToolStripMenuItemZ menuInformacion = CrearToolStripMenuItem("Información", string.Empty,
                                                        (System.Drawing.Image)Properties.Resources.información16, false);

            ToolStripMenuItemZ menuAcercaDe = CrearToolStripMenuItem("Acerca de Nosotros", "mnuAcerca", 
                                                                       (System.Drawing.Image)Properties.Resources.mail_send16, true);
            menuInformacion.DropDownItems.Add(menuAcercaDe);

            this.MainMenuStrip.Items.Add(menuInformacion);
            
            this.MainMenuStrip.Visible = true;
        }
        #endregion

        #region Menu Strip Click
        private void MenuStrip_onClick(System.Object sender, System.EventArgs e)
        {

            try
            {
                ToolStripMenuItemZ Item;
                Item = ((ToolStripMenuItemZ)sender);

                switch (Item.CodeOption)
                {
                    //Tablas, Productos
                    case "mnuCerrarSesion":
                        DialogResult respuesta = MessageBox.Show("¿Está seguro que desea cerrar su sesión? \nEsto cerrará todos los formularios abiertos y puede \nperder la información que no haya guardado.", "Cerrar de sesión", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                        if (respuesta == System.Windows.Forms.DialogResult.Yes)
                        {
                            GestionFormularios.CerrarTodos();
                        }
                        break;
                    case "mnuSalir":
                        this.Close();
                        break;
                    case "mnuAdmFacturas":
                        frmFactura factura = new frmFactura();
                        factura.ShowDialog();
                        break;
                    case "mnuOtros":
                        GestionFormularios.AbrirFormulario(typeof(frmFactura));
                        break;
                    case "mnuRecibos":
                        frmRecibo recibos = new frmRecibo();
                        recibos.ShowDialog();
                        break;
                    case "mnuProductos":
                        GestionFormularios.AbrirFormulario(typeof(frmProducto));
                        break;
                    case "mnuListaPrecios":
                        GestionFormularios.AbrirFormulario(typeof(frmListaPrecio));
                        break;
                    case "mnuUpProductos":
                        if (MessageBox.Show("¿Actualizar precios?", "Sistema de Facturación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                            break;
                        this.Cursor = Cursors.WaitCursor;
                        AdmProductos.ActualizarProductos();
                        this.Cursor = Cursors.Default;
                        MessageBox.Show("Actualización terminada", "Sistema de Facturación", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        break;
                    case "mnuClientes":
                        GestionFormularios.AbrirFormulario(typeof(frmCliente));
                        break;
                    case "mnuCC":
                        GestionFormularios.AbrirFormulario(typeof(frmCuentaCorriente));
                        break;
                    case "mnuLocalidades":
                        GestionFormularios.AbrirFormulario(typeof(frmLocalidad));
                        break;
                    case "mnuAcerca":
                        frmAcercaDe formularioModalAcerca = new frmAcercaDe();
                        formularioModalAcerca.StartPosition = FormStartPosition.CenterParent;
                        formularioModalAcerca.ShowDialog(this);
                        break;

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Montana");
            }
        }
        #endregion

        #region Key Down

        private void frmPrincipal_KeyDown(object sender, KeyPressEventArgs e)
        {
            switch (e.KeyChar)
            {
                case '1':
                    this.Close();
                    break;
                //case Keys.D1:
                //    frmFactura frmF = new frmFactura();
                //    frmF.Show();
                //    break;
                //case Keys.D2:
                //    frmCliente frmC = new frmCliente();
                //    frmC.Show();
                //    break;
                //case Keys.D3:
                //    frmProducto frmP = new frmProducto();
                //    frmP.Show();
                //    break;
                //case Keys.D4:
                //    frmListaPrecio frmLP = new frmListaPrecio();
                //    frmLP.Show();
                //    break;
                //case Keys.D5:
                //    frmLocalidad frmL = new frmLocalidad();
                //    frmL.Show();
                //    break;
                //case Keys.D6:
                //    frmCuentaCorriente f = new frmCuentaCorriente();
                //    f.Show();
                //    break;
                //case Keys.D7:
                //    frmRecibo frmR = new frmRecibo();
                //    frmR.Show();
                //    break;
            }
        }


        #endregion

        #region CrearToolStripMenuItem

        private ToolStripMenuItemZ CrearToolStripMenuItem(string titulo, string code, Image imagen, bool left)
        {
            ToolStripMenuItemZ menuInicial = new ToolStripMenuItemZ(titulo, code, MenuStrip_onClick);
            menuInicial.Image = imagen;
            menuInicial.Size = new System.Drawing.Size(131, 20);

            if (left)
            { menuInicial.Alignment = ToolStripItemAlignment.Left; }
            else
            {   menuInicial.Alignment = ToolStripItemAlignment.Right; }

            return menuInicial;
        }

        #endregion

    }
}